﻿/**
 * Peter
 * Created by: Peter Development Team
 *    http://peter.codeplex.com/
 * 
 * GNU General Public License version 2 (GPLv2)
 *    http://peter.codeplex.com/license
 *
 *  This code is provided on an AS IS basis, with no WARRANTIES,
 *  CONDITIONS or GUARANTEES of any kind.
 *
 **/

namespace Peter.Common.Interfaces
{
   /// <summary>
   /// Interface for an item that make use of the caret.
   /// </summary>
   public interface ICaret
   {
      /// <summary>
      /// The line the caret is on.
      /// </summary>
      int Line { get; }

      /// <summary>
      /// The column of the line the caret is on.
      /// </summary>
      int Column { get; }

      /// <summary>
      /// The total offset of the caret.
      /// </summary>
      int Offset { get; }

      /// <summary>
      /// The length of the current selection.
      /// </summary>
      int SelectionLength { get; }

      /// <summary>
      /// The starting index of the selection.
      /// </summary>
      int SelectionStart { get; }
   }
}
